package com.allen.excelUtils;

import java.util.ArrayList;
import java.util.List;

import com.allen.excelUtils.column.Column;



public class ExcelConfig {
	boolean displayNameFirst = true;//是否让列索引完全以第一行为标准，若为true，程序将以配置的列别名进行自动匹配
	boolean withOutTableHead = false;//是否从第一行开始读，默认从第二行开始读（第一行为标题）
	boolean annotationFirst = true;//是否优先根据注解进行配置字段映射
	List<Column> columns = new ArrayList<Column>();//映射的列配置
	
	public boolean isWithOutTableHead() {
		return withOutTableHead;
	}

	public boolean isAnnotationFirst() {
		return annotationFirst;
	}

	public void setAnnotationFirst(boolean annotationFirst) {
		this.annotationFirst = annotationFirst;
	}

	/**
	 * 是否从第一行开始读，默认从第二行开始读（第一行为自定义的标题列）,此时行索引我们以1开始定义
	 * @param withOutTableHead
	 */
	public ExcelConfig setWithOutTableHead(boolean withOutTableHead) {
		this.withOutTableHead = withOutTableHead;
		return this;
	}

	public List<Column> getColumns() {
		return columns;
	}

	public ExcelConfig setColumns(List<Column> columns) {
		if (null == columns) {
			throw new NullPointerException("columns对象不能为null");
		}
		this.columns = columns;
		return this;
	}
	public boolean isDisplayNameFirst() {
		return displayNameFirst;
	}

	/**
	 * 是否让列索引完全以第一行为标准，若为true，程序将以配置的列别名进行自动匹配
	 * @param nameFirst
	 */
	public ExcelConfig setDisplayNameFirst(boolean displayNameFirst) {
		this.displayNameFirst = displayNameFirst;
		return this;
	}
}
